/*
 *******************       UPnP发现服务       ******************
 
 功能描述
 - 搜索局域网查找可连接的设备，生成 WXDLNASenderDevice
 - 将本地资源加载到服务器中
 
 */

#import <Foundation/Foundation.h>
#import <Photos/Photos.h>

@class WXDLNASenderDevice;

@protocol WXDLNASenderServerDelegate <NSObject>

/// 搜索结果
/// @param devices 所有已搜索到的设备
- (void)upnpSearchChangeWithResults:(NSArray <WXDLNASenderDevice *>*_Nonnull)devices;

/// 搜索停止
/// @param error 失败原因
- (void)upnpSearchCloseWithError:(NSError *_Nonnull)error;

@optional
///  搜索失败
/// @param error 失败原因
- (void)upnpSearchError:(NSError *_Nonnull)error;

@end

@interface WXDLNASenderServer : NSObject

@property (nonatomic, weak) id<WXDLNASenderServerDelegate> delegate;

+ (instancetype _Nonnull)shared;

/// Activate
/// @param appId     appId
/// @param appSecret activation code
+ (void)registWithAppId:(NSString* _Nonnull)appId appSecret:(NSString* _Nonnull)appSecret registResult:(void (^_Nullable)(BOOL success))registResultBlock;

/// 启动搜索服务
- (void)start;

/// 停止搜索服务
- (void)stop;

/// 获取已经发现的设备
- (NSArray<WXDLNASenderDevice *> *_Nonnull)getDeviceList;
@end
